// components/collapse/collapse.js
Component({
	options: {
		addGlobalClass: true,
	},
	externalClasses: ['class'],
	relations: {
		'../collapseItem/collapseItem': {
			type: 'child', // 关联的目标节点应为子节点
			linked: function (target) {
				// 每次有custom-li被插入时执行，target是该节点实例对象，触发在该节点attached生命周期之后
				// console.log(target)
				// console.log(target.data)
			},
			linkChanged: function (target) {
				// 每次有custom-li被移动后执行，target是该节点实例对象，触发在该节点moved生命周期之后
			},
			unlinked: function (target) {
				// 每次有custom-li被移除时执行，target是该节点实例对象，触发在该节点detached生命周期之后
				// console.log(target)
			},
		},
	},
	/**
	 * 组件的属性列表
	 */
	properties: {
		accordion: { type: Boolean, value: false },
		value: {
			type: String,
			value: '',
			observer: function (n, o) {
				// console.log(n, o)
				let nodes = this.data.nodes || []
				nodes.map(v => {
					v.judgeOpen()
				})
			},
		},
	},

	/**
	 * 组件的初始数据
	 */
	data: {
		nodes: [],
	},

	ready() {
		this.getList()
	},
	/**
	 * 组件的方法列表
	 */
	methods: {
		getList: function () {
			// 使用getRelationNodes可以获得nodes数组，包含所有已关联的custom-li，且是有序的
			var nodes = this.getRelationNodes('../collapseItem/collapseItem')
			// console.log(nodes)
			this.setData({ nodes })
		},
		changeValue(id, open) {
			let value = this.data.value.split(',')
			let index = value.indexOf(id)
			if (open && index == -1) {
				this.data.accordion ? (value = []) : null
				value.push(id)
			} else if (!open && index != -1) {
				value.splice(index, 1)
			}
			value = value.join(',')
			console.log(value)
			this.setData({
				value,
			})
		},
	},
})
